<?php
namespace App\Library\Common;

/**
 * 文件缓存类
 * @author Administrator
 */
class FileCache
{
    /**
     * 保存缓存文件
     * @param string $fileName 缓存文件名称
     * @param $data json | array 数据
     */
    public static function saveCache(string $fileName, $data)
    {
        $path = substr($fileName, 0, strrpos($fileName, '/'));
        if (!file_exists($path)) {
            mkdir($path, true);
        }
        $data = is_string($data) ? $data : json_encode($data);
        file_put_contents($fileName, $data);
    }

    /**
     * 读取缓存
     * @param string $fileName 缓存文件名称
     */
    public static function getCache(string $fileName)
    {
        if (file_exists($fileName)) {
            return file_get_contents($fileName);
        }
        return false;
    }

    /**
     * 判断缓存文件是否过期
     * @param string $fileName 缓存文件名称
     * @param int $lifeTime 缓存生命周期(秒)
     */
    public static function expiredCache(string $fileName, int $lifeTime)
    {
        $isExists = file_exists($fileName);
        if ((!$isExists) || ($isExists && time() - filemtime($fileName) > $lifeTime)) {
            return true;
        }
        return false;
    }
}

?>